1. Field of the Invention
The present invention generally relates to remote boot methods and mechanisms and computer-readable storage media, and more particularly to a remote boot method and mechanism for carrying out a so-called boot process in a computer system to load an image of an operating system from a file apparatus that is connected to the computer system to a main memory of the computer system and to start the operating system, and to a computer-readable storage medium which stores a program for causing a computer to carry out such a boot process.
2. Description of the Related Art
In the computer system, the boot process which loads the image of the operating system from the file apparatus to the main memory and starts the operating system, is controlled by a boot firmware of the computer system.
FIG. 1 is a diagram showing an important part of a conventional computer system. In FIG. 1, a computer system 1 includes a main body part 11 and a system monitoring mechanism 12 that monitors the entire computer system 1. A plurality of Hard Disk Drives (HDDs) 2-1, 2-2, 2-3, . . . , a CDROM or DVDROM (CDROM/DVDROM) drive 3, and a network apparatus 4 are connected to the computer system 1, as file apparatuses. The main body part 11 includes a ROM firmware 21, a Read Only Memory (ROM) or Flash Memory (FMEM) 22, a Non-Volatile RAM (NVRAM) 23 and a main memory 24. In addition, the main memory 24 includes a boot firmware 241, an Operating System (OS) loader program (hereinafter simply referred to as an OS loader) 242 and an OS 243.
The ROM firmware 21 is written in a ROM or FMEM, and this ROM firmware 21 is started when the power of the computer system 1 is turned ON, to thereby execute a hardware analysis and initializing processes within the computer system 1. Thereafter, an image of the boot firmware that is compressed and stored in the ROM or FMEM 22 within the computer system 1 is located into the main memory 24, and the control is transferred to the boot firmware 241. The boot firmware 241 includes a driver program (hereinafter simply referred to as a driver) for controlling boot target apparatuses (file apparatuses) that are supported by the computer system 1, and executes the boot process by selecting the target apparatus that is to be actually booted, from the boot target apparatuses that are connected to the computer system 1, depending on preset boot information. Normally, the boot firmware 241 boots the OS loader 242 for booting the target OS 243. The boot firmware 241 does not need to be able to analyze the file system of the OS 243. Since the OS loader 242 that corresponds to the OS 243 can analyze the file system of the OS 243, the boot firmware 241 can recognize the location of the OS loader 242 in the boot target apparatus, and if this OS loader 242 can be booted, the OS 243 can thereafter be booted by this OS loader 242. In the computer system 1 shown in FIG. 1, the boot information is stored in the NVRAM 23. The boot target apparatus that is to be automatically booted when starting the computer system 1 is determined from the plurality of boot target apparatuses that are connected to the computer system 1, depending on the boot information that is stored in the NVRAM 23. The boot information that is stored in the NVRAM 23 includes a BootXXXX variable and a BootOrder variable, where “XXXX” denotes a hexadecimal number from “0000” to “FFFF”. The BootXXXX variable includes device path information indicating a location where the boot target apparatus is connected to the computer system 1, and information related to a file position and a file name of the OS loader 242. The BootOrder variable specifies an order in which the boot target apparatuses indicated by the plurality of BootXXXX variables are to be booted. When the control is transferred to the boot firmware 241, the boot firmware 241 initializes various drivers for booting and carries out a probing process with respect to the HDDs 2-1, 2-2, 2-3, . . . that are connected to the computer system 1. Thereafter, the value of the portion “XXXX” of the BootXXXX variable is specified from the BootOrder variable of the NVRAM variables, and the boot target apparatus specified by the BootXXXX variable and the OS loader 242 are booted.
Accordingly, the following functions f1) through f3) are realized by the boot firmware 241.                f1) A function of using drivers thereof for controlling the boot target apparatuses such as the HDDs 2-1, 2-2, 2-3, . . . , the CDROM/DVDROM drive 3 and the network apparatus 4, and booting the OS loaders 242 stored in the boot target apparatuses;        f2) A function of storing the boot information, such as the device path information of the boot target apparatus and information of the image of the target OS, in the NVRAM 23; and        f3) A function of reading the boot information stored in the NVRAM 23, and selecting the boot target apparatus based on a boot priority order.        
According to the functions f1) through f3) described above, the boot process of the OS 243 by the boot firmware 241 may be regarded as functions to determine the boot target apparatus based on the boot information that is preset in the NVRAM 23 and to boot the OS loader 242. But in addition, the boot process of the OS 243 by the boot firmware 241 includes a so-called remote boot function which temporarily executes a boot process from a boot apparatus different from the boot information that is preset in the NVRAM 23, only for the next boot process, based on information received from the system monitoring mechanism 12.
FIG. 2 is a diagram for explaining a path with which the boot firmware 241 acquires the boot information. In the normal boot process, the boot information is acquired from the NVRAM 23 that is managed by the boot firmware 241. In case where the boot information also exists in the system monitoring mechanism 12, the boot target apparatus is determined depending on the boot information from the system monitoring mechanism 12, regardless of the boot information from the NVRAM 23. The boot information in the system monitoring mechanism 12 may be specified by an application program 244 that is under the control of the OS operated in the computer system 1 or, specified by an external computer system 31 that is connected to the system monitoring mechanism 12 via a network 30.
For example, a Japanese Laid-Open Patent Application No. 5-35489 proposes a method of loading an initial program in a computer work station that is connected to a LAN or the like, by determining a generation source of an initial program load control logic. In addition, a Japanese Laid-Open Patent Application No. 6-259351 proposes a method of automatically starting an auxiliary system when a failure is generated in an information processing apparatus.
In the computer system 1 described above, it is possible to specify a temporary boot from the application program 244 or the external computer 31, by a remote boot control via the system monitoring mechanism 12, regardless of the boot information set in the NVRAM 23 that is managed by the boot firmware 241. However, although the boot firmware 241 can flexibly set the boot information depending on the system structure by setting detailed boot information in the NVRAM 23, there was a problem in that the booting can only be specified from particular HDDs, CDROM/DVDROM drives and network apparatuses because a reference cannot be made to the information that is flexibly set in the NVRAM 23 when specifying the boot target apparatus via the system monitoring mechanism 12. In other words, when storing the boot information in the NVRAM 23, even an apparatus that is connected via an interface that is not provided as an on-board interface of the target computer system 1 may be freely set since the device path information of the boot target apparatus can be freely set as the boot information, and the boot path may be defined flexibly depending on the system structure. However, the boot path cannot be freely specified in such a manner via the system monitoring mechanism 12.